Vue v-html Directive

একটি উপাদানে HTML ট্যাগ এবং পাঠ্য সন্নিবেশ করতে v-html ব্যবহার করুন

Example

আপনার নিজস্ব Vue সার্ভার পান

<ol> এবং <li> ট্যাগ ধারণকারী একটি তালিকা আউটপুট করতে v-html নির্দেশ ব্যবহার করে।

<div id="app">
  <div>{{ htmlContent }}</div>
  <div v-html="htmlContent"></div>
</div>

নীচে আরো উদাহরণ দেখুন.

Definition and Usage

v-html নির্দেশিকাটি একটি উপাদানের মধ্যে HTML ট্যাগ এবং পাঠ্য সন্নিবেশ করতে ব্যবহৃত হয়।

আপনি যদি টেক্সট ইন্টারপোলেশন ব্যবহার করে (কোঁকড়া বন্ধনী {{ }} ব্যবহার করে) HTML ট্যাগগুলি আউটপুট করার চেষ্টা করেন, ফলাফলটি শুধুমাত্র একটি পাঠ্য স্ট্রিং। উপরের উদাহরণ দেখুন।

<style scoped> ব্যবহার করে সিঙ্গল-ফাইল কম্পোনেন্টস (SFCs) এ সংজ্ঞায়িত পজিশনিং স্টাইল v-html নির্দেশিকা থেকে HTML কে প্রভাবিত করে না। নীচের প্রথম উদাহরণ দেখুন।

সিএসএস মডিউলগুলিকে <স্টাইল মডিউল> দিয়ে ব্যবহার করা যেতে পারে এসএফসি-তে ভি-এইচটিএমএলের সাথে অন্তর্ভুক্ত এইচটিএমএলের স্ট্যাটিক স্টাইলিং অর্জন করতে। নীচের দ্বিতীয় উদাহরণ দেখুন।

⚠️দ্রষ্টব্য:

যে পৃষ্ঠাগুলিতে ব্যবহারকারীরা কোনোভাবে v-html এর সাথে অন্তর্ভুক্ত বিষয়বস্তু নির্ধারণ করতে পারে সেগুলি ক্রস-সাইট স্ক্রিপ্টিং (XSS) আক্রমণের জন্য ঝুঁকিপূর্ণ।

More Examples

Example 1

অবস্থানগত শৈলী ব্যবহার করে v-html এর সাথে যুক্ত HTML এর জন্য শৈলী কাজ করে না।

এই সমস্যাটি পরবর্তী উদাহরণে সমাধান করা হয়েছে।

<template>
  <h1>Example</h1>
  <p>When using scoped styling, styling for HTML included with the 'v-html' directive does not work.</p>
  <p><a href="showvue.php?filename=demo_ref_v-html2_2">See the next example</a> for how we can fix this by using CSS Modules.</p>
  <div v-html="htmlContent" id="htmlContainer"></div>
</template>

<script>
export default {
  data() {
    return {
      htmlContent: "<p>Hello from v-html</p>"
    }
  }
};
</script>

<style scoped>
  #htmlContainer {
    border: dotted black 1px;
    width: 200px;
    padding: 10px;
  }
  #htmlContainer > p {
    background-color: coral;
    padding: 5px;
    font-weight: bolder;
    width: 150px;
  }
</style>

Example 2

<style scoped> এর পরিবর্তে <style module> সহ CSS মডিউল ব্যবহার করে, স্টাইলটি স্টাইল পজিশনিং এবং v-html সহ HTML এর জন্য কাজ করে।

আগের উদাহরণে এই সমস্যাটি এখন সমাধান করা হয়েছে।

<template>
  <h1>Example</h1>
  <p>Scoped styling for HTML included with the 'v-html' directive now works by using CSS Modules with 'style module', instead of 'style scoped'.</p>
  <div v-html="htmlContent" :id="$style.htmlContainer"></div>
</template>

<script>
export default {
  data() {
    return {
      htmlContent: "<p>Hello from v-html</p>"
    }
  }
};
</script>

<style module>
  #htmlContainer {
    border: dotted black 1px;
    width: 200px;
    padding: 10px;
  }
  #htmlContainer > p {
    background-color: coral;
    padding: 5px;
    font-weight: bolder;
    width: 150px;
  }
</style>

Exercise

প্রশিক্ষণ:

Vue.js v-html directive ?

SQL Injection
✗ ভুল! v-html এর সাথে SQL ইনজেকশনের কোন ঝুঁকি নেই
Buffer Overflow
✗ ভুল! v-html এর সাথে কোনো বাফার ওভারফ্লো ঝুঁকি নেই
Cross-site scripting (XSS)
✓ ঠিক আছে! v-html ব্যবহার করার সময় একটি ক্রস-সাইট স্ক্রিপ্টিং (XSS) ঝুঁকি রয়েছে
Denial of Service
✗ ভুল! v-html এর সাথে পরিষেবার ঝুঁকি নেই